#ifndef __BB_ACCOUNT_H__
#define __BB_ACCOUNT_H__

// Songbird imports.
#include <bbIAccount.h>

// Mozilla imports.
#include <nsCOMPtr.h>
#include <nsIGenericFactory.h>
#include "nsStringAPI.h"

#define BB_ACCOUNT_CLASSNAME "bbAccount"
#define BB_ACCOUNT_CONTRACTID "@balancebook.com/data/account;1"
#define BB_ACCOUNT_CID                                     \
  { /* 9cb967d8-0337-4d90-b224-64bc15789296 */             \
    0x9cb967d8,                                            \
    0x0337,                                                \
    0x4d90,                                                \
    { 0xb2, 0x24, 0x64, 0xbc, 0x15, 0x78, 0x92, 0x96 }     \
  }

class bbAccount : public bbIAccount
{
public:
  NS_DECL_ISUPPORTS
  NS_DECL_BBIACCOUNT

  bbAccount();
  virtual ~bbAccount();

private:
  PRUint32              mId;
  nsString              mName;
  nsString              mType;
  double                mBalance;
};

/*
  // TODO: Put in the cpp file.
nsresult
New_bbAccount(bbIAccount** ret,
              bbIStorage *owner)
{
  // create the object
  bbAccount* out = new bbAccount();
  if (!out) return NS_ERROR_OUT_OF_MEMORY;

  // init the object
  if (out->Init(owner) == FALSE)
  {
    delete out;
    return NS_ERROR_OUT_OF_MEMORY;
  }

  // cast to the interface
  *ret = static_cast<bbIAccount*>(out);
  return NS_OK;
}
*/
#endif // __BB_ACCOUNT_H__
